<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
    <script>
        // for(var i=1;i<=5;i++){
        //     (function(i){       //自执行函数  接收的是全局变量i
        //         setTimeout(function timer(){
        //             console.log(i);     //一秒执行一次timer函数，因为是异步所以最后执行
        //         },i*1000)
        //     })(i)       //这里的i就是从1到6
        // }
        // console.log(i);    //6 i是全局变量 for循环只有执行完才会往下接着走 所以执行完for循环后i的值加到了6


        // var obj1={a:1,b:2,c:3,d:{e:4}};
        // var obj2={...obj1};     //...只能深拷贝一层，一层以上全是浅拷贝
        // obj1.a=2;   
        // obj1.d.e=5;     
        // console.log(obj2);  //{a: 1, b: 2, c: 3, d: {e:5}}


        // setTimeout(function(){
        //     console.log(1);
        // },0)
        // new Promise(function(reslove){
        //     console.log(2);
        //     reslove();
        //     console.log(3);
        // }).then(function(){
        //     console.log(4);
        // })

        // 2,3,4,1      
        // promise是微任务，定时器是宏任务，他们都是异步任务，先执行微任务，再执行宏任务，promise和promise.then都是微任务所以最后打印1



        const arr=[12,24,37,24,49,49,55,68]


        // let arr1=new Set(arr)    es6新增去重方法


        // let arr1=[];
        // arr.forEach(item=>{
        //     if(!arr1.includes(item)){    //判断有没有数组的某一项，有就说明重复了，不作操作，没有就能添加
        //         arr1.push(item)
        //     }
        // })

        let arr1 = [];
        arr.forEach(item=>{
            if(arr1.indexOf(item)==-1){     //没找到数组的每一项就会返回-1，说明不包含，可以添加进去
                arr1.push(item)
            }
        })
        console.log(arr1);
    </script>
</body>
</html>